// 开发一个nodejs服务器
// 可以提供页面服务, 支撑打包后的 dist 文件代码

// 引入库
const Koa = require('koa')
const serve = require('koa-static')
const { historyApiFallback } = require('koa2-connect-history-api-fallback')
const proxy = require('koa2-proxy-middleware')

// 创建服务器实例
const app = new Koa()

// 在创建实例之后, 提供页面服务之前
// 处理 history 模式带来的刷新问题
app.use(historyApiFallback())
// 处理生产环境请求转发的问题
app.use(proxy({
  targets: {
    // 这里面可以放规则对象
    '/prod-api/(.*)': {
      target: 'http://ihrm-java.itheima.net',
      changeOrigin: true,
      // 我们配对的是 prod-api 这是生产环境变量配置导致的
      // 但是服务器不一定认这个请求, 服务器认 /api
      pathRewrite: {
        '/prod-api' : '/api'
      }
    }
  }
}))

// 提供静态文件服务中间件, 指定页面存放的位置
// __dirname 指 nodejs 当中当前文件夹的绝对路径
app.use(serve(__dirname + '/dist'))

// 开启服务器
app.listen(3333, ()  => {
  console.log('服务器启动成功');
  console.log('http://localhost:3333');
})
